<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Class Positive</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body bgcolor="#ffffff">

<div class = "title">Class Positive</div>
<p></p>

<!-- ============================================================= -->

<a name="refclass130946"></a>
<p>Positive est le role tenu par un PositiveAgent qui a pour but de rejoindre le goal en exploitant au maximum le terrain et en evitant les obstacles.<br /><br />@author Etienne Sainton<br />@version 0.1<br /><br /></p>
<p>Declaration :</p><ul>
<li>Java : public class Positive extends <a href="class130434.html#refclass130434"><b>Role</b></a> </li></ul><p>Artifact : <a href="index.html#refartifact130050"><b>Positive</b></a></p>
<div class="sub">
<a name="refrelation131202"></a>
<table><tr><td><div class="element">Relation <b>environment (&lt;unidirectional association&gt;)</b></div></td></tr></table><p>Son environnement local<br /><br /><br /></p><p>Declaration :</p><ul><li>Uml : - environment : <a href="class128386.html#refclass128386"><b>LocalEnvironment</b></a></li><li>Java : private <a href="class128386.html#refclass128386"><b>LocalEnvironment</b></a> environment</li></ul><a name="refrelation131330"></a>
<table><tr><td><div class="element">Relation <b>body (&lt;unidirectional association&gt;)</b></div></td></tr></table><p>Son body<br /><br /><br /></p><p>Declaration :</p><ul><li>Uml : - body : <a href="class129410.html#refclass129410"><b>CircleBody</b></a></li><li>Java : private <a href="class129410.html#refclass129410"><b>CircleBody</b></a> body</li></ul><table><tr><td><div class="element">Class <b><a href="class131074.html#refclass131074"><b>State</b></a></b></div></td></tr></table>
<a name="refrelation131458"></a>
<table><tr><td><div class="element">Relation <b>currentState (&lt;unidirectional association&gt;)</b></div></td></tr></table><p>Etat courant du role<br /><br /><br /></p><p>Declaration :</p><ul><li>Uml : - currentState : <a href="class131074.html#refclass131074"><b>State</b></a> =  State.I_M_HERE</li><li>Java : private <a href="class131074.html#refclass131074"><b>State</b></a> currentState</li></ul><a name="refattribute130946"></a>
<table><tr><td><div class="element">Attribute <b>perceivedBodies</b></div></td></tr></table>
<p>Liste des agents que l'on voit :<br /><br /></p><p>Declaration :</p><ul><li>Uml : - perceivedBodies : Vector2d</li><li>Java : private List&lt;Vector2d&gt; perceivedBodies</li></ul><p>Stereotype: List</p>
<a name="refattribute131074"></a>
<table><tr><td><div class="element">Attribute <b>perception</b></div></td></tr></table>
<p>Distance à laquelle perçoit un agent positif<br /><br /></p><p>Declaration :</p><ul><li>Uml : - perception : int =  Config.PERCEPTION</li><li>Java : private int perception</li></ul><a name="refattribute131202"></a>
<table><tr><td><div class="element">Attribute <b>goalPosition</b></div></td></tr></table>
<p>La position vers laquelle on va :<br /><br /></p><p>Declaration :</p><ul><li>Uml : - goalPosition : Vector2d</li><li>Java : private Vector2d goalPosition</li></ul><a name="refoperation134018"></a>
<table><tr><td><div class="element">Operation <b>init</b></div></td></tr></table><p>Initialisation de l'agent. Automatiquement appelee par le constructeur<br />@param _environment<br />@param _body<br /></p><p>Declaration :</p><ul><li>Uml : - init(inout _environment : <a href="class128386.html#refclass128386"><b>LocalEnvironment</b></a>, inout _body : <a href="class129410.html#refclass129410"><b>CircleBody</b></a>) : void</li><li>Java : private void init(<a href="class128386.html#refclass128386"><b>LocalEnvironment</b></a> _environment, <a href="class129410.html#refclass129410"><b>CircleBody</b></a> _body)</li></ul><a name="refoperation134146"></a>
<table><tr><td><div class="element">Operation <b>activate</b></div></td></tr></table><p>Override de l'activate defini par Janus. Nous en profitons pour lui affecter son environnement et son body.<br /></p><p>Declaration :</p><ul><li>Uml : + activate(inout  : Object...params) : Status</li><li>Java : public Status activate(Object...params )</li></ul><p> Java annotation(s) :<ul>@Override<br /></ul><a name="refoperation134274"></a>
<table><tr><td><div class="element">Operation <b>live</b></div></td></tr></table><p>Override du live defini par Janus.<br />Le raisonnement est le principe : a chaque iteration je regarde les 3 regles de l'agent pour definir ma nouvelle position.<br /></p><p>Declaration :</p><ul><li>Uml : + live() : Status</li><li>Java : public Status live()</li></ul><p> Java annotation(s) :<ul>@Override<br /></ul><a name="refoperation134402"></a>
<table><tr><td><div class="element">Operation <b>run</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : - run() : <a href="class131074.html#refclass131074"><b>State</b></a></li><li>Java : private <a href="class131074.html#refclass131074"><b>State</b></a> run()</li></ul><a name="refoperation134530"></a>
<table><tr><td><div class="element">Operation <b>perceivedBodies</b></div></td></tr></table><p>Permet de lister les agents perçus :<br />@return Liste des corps des agents perçus :<br /></p><p>Declaration :</p><ul><li>Uml : - perceivedBodies() : List&lt;Vector2d&gt;</li><li>Java : private List&lt;Vector2d&gt; perceivedBodies()</li></ul><a name="refoperation134658"></a>
<table><tr><td><div class="element">Operation <b>goAway</b></div></td></tr></table><p>Cette fonction renvoit la force qui s'applique sur l'agent pour qu'il s'éloigne du reste du groupe.<br />Pour rappel la force pour chaque agent perçu est : F = 1 /(distance²) * vitesse<br />@return Force (Vector2d) d'éloignement de l'agent par rapport au groupe :<br /></p><p>Declaration :</p><ul><li>Uml : - goAway() : Vector2d</li><li>Java : private Vector2d goAway()</li></ul><a name="refoperation134786"></a>
<table><tr><td><div class="element">Operation <b>avoidBorders</b></div></td></tr></table><p>Cette fonction permet à l'agent d'éviter les murs :<br />@return la force<br /></p><p>Declaration :</p><ul><li>Uml : - avoidBorders() : Vector2d</li><li>Java : private Vector2d avoidBorders()</li></ul><a name="refoperation134914"></a>
<table><tr><td><div class="element">Operation <b>move</b></div></td></tr></table><p>Cette méthode déplace notre agent en fonction de toutes les forces qui s'appliquent sur lui.<br /></p><p>Declaration :</p><ul><li>Uml : - move() : void</li><li>Java : private void move()</li></ul></div>
<p>All public operations : <a href="class130946.html#refoperation134146"><b>activate</b></a> , <a href="class130946.html#refoperation134274"><b>live</b></a> </p>
</body>
</html>
